// 为 Date 原型添加 Format 方法
Date.prototype.Format = function(fmt) {
	const o = {
		'M+': this.getMonth() + 1, // 月份
		'd+': this.getDate(), // 日
		'h+': this.getHours(), // 小时
		'm+': this.getMinutes(), // 分
		's+': this.getSeconds(), // 秒
		'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
		'S': this.getMilliseconds() // 毫秒
	};

	// 处理年份
	const yearMatch = fmt.match(/(y+)/);
	if (yearMatch) {
		const yearStr = this.getFullYear().toString();
		const yearPlaceholder = yearMatch[1];
		const yearLength = yearPlaceholder.length;
		fmt = fmt.replace(yearPlaceholder, yearStr.slice(-yearLength));
	}

	// 处理其他日期部分
	for (const k in o) {
		const reg = new RegExp(`(${k})`);
		const match = fmt.match(reg);
		if (match) {
			const placeholder = match[1];
			const value = o[k];
			const valueStr = value.toString();
			if (placeholder.length === 1) {
				fmt = fmt.replace(placeholder, valueStr);
			} else {
				fmt = fmt.replace(placeholder, ('00' + valueStr).slice(-placeholder.length));
			}
		}
	}

	return fmt;
};

// 格式化时间为字符串的函数
export function fmt时间(time, pattern = 'yyyy-MM-dd hh:mm:ss') {
	if (time !== null && time !== '') {
		let d = new Date(time).Format(pattern);
		return d
	} else {
		return ''
	}
}

export function fmt时间到月(time) {
	return fmt时间(time, 'yyyy-MM')
}

export function fmt时间到天(time) {
	return fmt时间(time, 'yyyy-MM-dd')
}

export function fmt时长(time) {
	if (!time || isNaN(time)) return '……';
	const 小时 = Math.floor(time / 60);
	const 分钟 = Math.floor(time % 60);
	let res = ''
	if (小时 > 0) {
		res = `${小时}小时`;
	}
	res += `${分钟}分钟`;
	return res
}

export function 是时间(time) {
	if (!time || isNaN(new Date(time).getTime())) {
		return false
	}
	return true
}